Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に
マイクロソフトCEOのサティア・ナデラ氏は、Excelの新機能である「Lambda関数」の登場をとりあげ、「世界で最も人気のあるプログラミング言語、Excelの数式が、チューリング完全になった」とツイートしました。
Excel formulas, the world’s most popular programming language, is now Turing-complete. Go check it out! https://t.co/qkw3Bmt1gp
— Satya Nadella (@satyanadella) February 9, 2021
Lambda関数は、上記のツイートが示す図にあるように、Excelがすでに備えている式や関数を組み合わせて、ユーザーが新たな関数を定義できる機能を提供します。これが今月に入り、Excelで利用可能になりました。
一方、「チューリング完全」とは、おおまかに言えば、コンピュータで計算できるあらゆる計算を表現できること、ということになります。
一般に、プログラミング言語はチューリング完全であり、ExcelもマクロやVBAなどExcelに備わっているプログラミング言語を利用すれば以前からチューリング完全の状態でした。
しかし今回ナデラ氏がツイートしたのは、そうしたプログラミング言語を用いず、Excelのセルに入力される数式だけでチューリング完全を満たした、ということなのです。
しかもナデラ氏は「世界で最も人気のあるプログラミング言語の」と、あたかもExcelの数式がプログラミング言語であるように表現しています。これはどういうことでしょう?
Excel数式をプログラミング言語とみなすための「チューリング完全」
実は、マイクロソフトは以前からExcelの数式をプログラミング言語と見なし、そのための機能追加を行ってきたのです。
マイクロソフトリサーチが1月25日付で公開したブログ「LAMBDA: The ultimate Excel worksheet function」では、プログラミング言語としてのExcelの数式について次のように書かれています。
Despite its success, considered as a programming language Excel has fundamental weaknesses. Over the years, two particular shortcomings have stood out: (1) the Excel formula language really only supported scalar values—numbers, strings, and Booleans—and (2) it didn’t let users define new functions.
その成功にもかかわらず、プログラミング言語としてExcelを見なそうとすると根本的な問題があった。長年にわたり、特に次の2つの欠点が際立っていたのだ。(1)Excel数式言語には、実際にはスカラー値、つまり数字、文字列、ブール値しかサポートしていない。(2)ユーザーが新しい関数を定義できない。
ここで指摘された「プログラミング言語として見なしたExcelの数式」の2つの欠点うち、(1)のスカラー値しかサポートしていない点については、このブログが公開される2か月前の2020年11月、新機能「Custom Data Types」がExcelに搭載され、解決されています。
参考:Excelに新機能「Custom Data Types」登場。セルをキーにしてさまざまな情報を参照。ユーザー独自の定義も可能に
そして(2)の、ユーザーが新しい関数を定義できないという欠点も、今回のLambda関数の導入によって解決されました。
これによってExcelの数式は、プログラミング言語であれば満たしているチューリング完全となりました。
前述のマイクロソフトリサーチのブログが書かれた時点で、Lambda関数はベータ版として登場していました。そのため、ブログ内ではすでに次のように書かれていました。
With LAMBDA, Excel has become Turing-complete. You can now, in principle, write any computation in the Excel formula language.
LambdaによってExcelはチューリング完全に到達する。そうなれば原理的にはExcelの数式言語であらゆる計算が記述可能になるのだ。
一般論として、チューリング完全であるものがつねにプログラミング言語ではありませんが、チューリング完全でないものはプログラミング言語であるとは言いにくいものです。そのために、マイクロソフトは明確な目的をもってExcelの数式をチューリング完全にし、それをもって、Excelの数式はプログラミング言語として見なしてもよいだろうと考えたのでしょう。
だからこそ、サティア・ナデラCEOが「世界で最も人気のあるプログラミング言語、Excelの数式が、チューリング完全になった」とツイートしたのだと思われます。
Excelの数式が多くの人にとってより強力な武器となる
マイクロソフトはこれから、Excelの数式を「プログラミング言語」であると押し出していくのかもしれません。
セルに数式を入力していくことは、VBAなどでプログラミングを行うよりもずっとハードルが低く、それがプログラミングであるとほとんどの人に意識させないほど簡単です。
それでいて、その数式だけで原理的にはプログラミング言語と同等の高度な処理まで記述できるのであれば、それはより多くの人にとってより強力な武器となり得ます。
マイクロソフトがExcelの数式でチューリング完全を実現しようとしたのは、そこに狙いがあるのではないでしょうか。
Excelでは、これまでにExcelでスーパーマリオを再現した事例や、ExcelでVBAを使わないでドラクエ3を再現した事例など、とても表計算の上で動いているとは信じられないようなアプリケーションの実装が行われてきました。
チューリング完全となったExcelの数式を組み合わせることで、さらに驚くようなアプリケーションが登場することを期待せずにはいられません。
追記:2021年3月、マイクロソフトからExcelの数式をベースにした言語「Power Fx」が登場しました。
関連記事
あわせて読みたい
SAP、ローコード/ノーコードツールベンダ「AppGyver」買収を発表、React Nativeベースの業務アプリを生成。売上げ10億円以下の企業や個人には無料で提供
≪前の記事
Microsoft Azure、「Computer Vision API」のOCR機能が日本語に対応、パブリックプレビューとして